package com.hibase.core.page.service.pagemenu;

import com.github.pagehelper.PageInfo;
import com.hibase.common.entity.user.LoginType;
import com.hibase.core.mybatis.service.BaseService;
import com.hibase.core.page.entity.pagemenu.PageMenu;
import com.hibase.core.page.entity.pagemenu.vo.PageMenuSearchVO;
import org.springframework.transaction.annotation.Transactional;

import javax.servlet.http.HttpServletResponse;

/**
 * <p>
 * 页面菜单配置表 服务类
 * </p>
 *
 * @author junk
 * @since 2021-03-31
 */
@Transactional(readOnly = true, rollbackFor = Exception.class)
public interface PageMenuService extends BaseService<PageMenu> {

    /**
     * 查询页面菜单配置表列表
     *
     * @param searchVO
     * @return
     */
    PageInfo<PageMenu> selectPageMenuList(PageMenuSearchVO searchVO);

    /**
     * 改变页面菜单配置表记录
     *
     * @param entity
     * @return
     */
    void savePageMenu(PageMenu entity);

    /**
     * 查询页面菜单配置表详情
     *
     * @param id
     * @return
     */
    PageMenu viewPageMenu(String id);

    /**
     * 删除页面菜单配置表
     *
     * @param id
     */
    void deletePageMenu(String id);

    /**
    * 导出页面菜单配置表记录
    * @param searchVO
    * @return
    */
    public void exportPageMenu(PageMenuSearchVO searchVO, HttpServletResponse response);

    /**
     * @Title: PageMenuService
     * @Description: 同步resources pageConfig到pageMenu表中
     * @author TimBrian
     * @since 2021年11月10日 下午4:43:53
     */
    @Transactional(readOnly = false, rollbackFor = Exception.class)
	void syncPageConfigToPageMenu(LoginType loginType);

	/**
	 * @Title: PageMenuService
	 * @Description: 同步pageMenu表到resources pageConfig中
	 * @author TimBrian
	 * @since 2021年11月10日 下午4:53:53
	 */
    @Transactional(readOnly = false, rollbackFor = Exception.class)
	void syncPageMenuToPageConfig(LoginType loginType);
}
